using System;
using System.Data;
using System.Data.SqlClient;
using SystemFrameworks;
using Common;
using DataAccess;
using Microsoft.ApplicationBlocks.Data;

namespace BusinessRules
{
    public class SigPlanAccionModificado
    {
        private const String PLN_ANO_PARAM = "@PLN_ANO";

        private const String DEP_ID_PARAM = "@DEP_ID";
        private const String PER_ID_PARAM = "@PER_ID";
        private const String PND_ID_PARAM = "@PND_ID";
        


        private const String PLN_NOMBRE_PARAM = "@PLN_NOMBRE";
        private const String PLN_CODIGO_BPIN_PARAM = "@PLN_CODIGO_BPIN";
        private const String PLN_CODIGO_PRESUPUESTAL_PARAM = "@PLN_CODIGO_PRESUPUESTAL";
        private const String PLN_VALOR_APROPIACION_PARAM = "@PLN_VALOR_APROPIACION";
        private const String PLN_OBJETIVO_PARAM = "@PLN_OBJETIVO";
        private const String PLN_DESCRIPCION_PARAM = "@PLN_DESCRIPCION";
        private const String PLN_PROBLEMA_PARAM = "@PLN_PROBLEMA";
        private const String CLS_ID_PARAM = "@CLS_ID";


        private const String STM_ID_PARAM = "@STM_ID";
        private const String PLM_VALOR_PARAM = "@PLM_VALOR";
        private const String PLM_JUSTIFICACION_PARAM = "@PLM_JUSTIFICACION";
        private const String PLM_NORMA_PARAM = "@PLM_NORMA";
        private const String PLM_FECHA_PARAM = "@PLM_FECHA";
        private const String PLM_OBSERVACION_PARAM = "@PLM_OBSERVACION";
        private const String PLM_USUARIO_PARAM = "@PLM_USUARIO";
        private const String PLM_ID_PARAM = "@PLM_ID";
        private const String PLN_ID_PARAM = "@PLN_ID";

        
        
        
        private string _CadenaConexion;

        public string CadenaConexion
        {
            get { return _CadenaConexion; }
            set { _CadenaConexion = value; }
        }

        public SigPlanAccionModificado(string strCadenaConecxion)
        {
            CadenaConexion = strCadenaConecxion;
        }

        public SigPlanAccionModificacionData ConsultarSigPlanAccionModificadoPlmId(Decimal decPlmId)
        {
            SigPlanAccionModificacionData objSigPlanAccionData = new SigPlanAccionModificacionData();
            SqlParameter param1 = new SqlParameter(PLM_ID_PARAM, decPlmId);
            SqlParameter[] parameters = { param1 };
            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_BUSCAR_SIG_PLAN_ACCION_MODIFICACION_PLM_ID", objSigPlanAccionData, parameters);
            return objSigPlanAccionData;
        }

        public SigPlanAccionModificacionData ConsultarSigPamPlnId(Decimal decPnlId)
        {
            SigPlanAccionModificacionData objSigPlanAccionModificacionData = new SigPlanAccionModificacionData();
            SqlParameter param1 = new SqlParameter(PLN_ID_PARAM, decPnlId);
            SqlParameter[] parameters = { param1 };
            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_BUSCAR_SIG_PLAN_ACCION_MODIFICADO_PLN_ID", objSigPlanAccionModificacionData, parameters);
            return objSigPlanAccionModificacionData;
        }
        public SigPlanAccionData ConsultarAno()
        {
            SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();

            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_BUSCAR_SIG_PLAN_ACCION_ANO", objSigPlanAccionData);

            return objSigPlanAccionData;
        }
        public SigTipoClasificacionData BuscarClasificacion()
        {
            SigTipoClasificacionData objSigTipoClasificacionData = new SigTipoClasificacionData();
            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_BUSCAR_SIG_TIPO_CLASIFICACION", objSigTipoClasificacionData);
            return objSigTipoClasificacionData;
        }

        #region AdicionarRubroModificacion

        public decimal AdicionarRubroModificacion(SigPlanAccionModificacionData objDS, params SqlTransaction[] objTransaction)
        {
            DataTable objDT = objDS;
            decimal decReturn = 0;
            try
            {
                foreach (DataRow objRow in objDT.Rows)
                {

                    SqlParameter param0 = new SqlParameter(PLM_ID_PARAM, SqlDbType.Decimal);
                    SqlParameter param1 = new SqlParameter(PLN_ID_PARAM, objRow[SigPlanAccionModificacionData.PLN_ID_FIELD]);
                    SqlParameter param2 = new SqlParameter(STM_ID_PARAM, objRow[SigPlanAccionModificacionData.STM_ID_FIELD]);
                    SqlParameter param3 = new SqlParameter(PLM_VALOR_PARAM, objRow[SigPlanAccionModificacionData.PLM_VALOR_FIELD]);
                    SqlParameter param4 = new SqlParameter(PLM_JUSTIFICACION_PARAM, objRow[SigPlanAccionModificacionData.PLM_JUSTIFICACION_FIELD]);
                    SqlParameter param5 = new SqlParameter(PLM_NORMA_PARAM, objRow[SigPlanAccionModificacionData.PLM_NORMA_FIELD]);
                    SqlParameter param6 = new SqlParameter(PLM_FECHA_PARAM, objRow[SigPlanAccionModificacionData.PLM_FECHA_FIELD]);
                    SqlParameter param7 = new SqlParameter(PLM_OBSERVACION_PARAM, objRow[SigPlanAccionModificacionData.PLM_OBSERVACION_FIELD]);
                    SqlParameter param8 = new SqlParameter(PLM_USUARIO_PARAM, objRow[SigPlanAccionModificacionData.PLM_USUARIO_FIELD]);
                    param0.Direction = ParameterDirection.Output;
                    SqlParameter[] parameters = { param0, param1, param2, param3, param4, param5, param6, param7, param8 };
                    if (objTransaction.Length == 0)
                    {
                       SqlHelper.ExecuteNonQuery(CadenaConexion, CommandType.StoredProcedure,
                                                              "PAS_ADICIONAR_SIG_PLAN_ACCION_MODIFICACION", parameters);
                    }
                    else
                    {
                        SqlHelper.ExecuteNonQuery(objTransaction[0], CommandType.StoredProcedure,
                                                              "PAS_ADICIONAR_SIG_PLAN_ACCION_MODIFICACION", parameters);
                    }

                    decReturn = Convert.ToDecimal(param0.Value.ToString());
                }

            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "dbo.PAS_ADICIONAR_SIG_PLAN_ACCION_MODIFICACION"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "dbo.PAS_ADICIONAR_SIG_PLAN_ACCION_MODIFICACION"), ex);
            }

            return decReturn;
        }

        #endregion

        #region ActualizarRubroModificacion

        public int ActualizarRubroModificacion(SigPlanAccionModificacionData objDS, params SqlTransaction[] objTransaction)
        {
            DataTable objDT = objDS;
            int intReturn = 0;
            try
            {
                foreach (DataRow objRow in objDT.Rows)
                {

                    SqlParameter param0 = new SqlParameter(PLM_ID_PARAM, objRow[SigPlanAccionModificacionData.PLM_ID_FIELD]);
                    SqlParameter param1 = new SqlParameter(PLN_ID_PARAM, objRow[SigPlanAccionModificacionData.PLN_ID_FIELD]);
                    SqlParameter param2 = new SqlParameter(STM_ID_PARAM, objRow[SigPlanAccionModificacionData.STM_ID_FIELD]);
                    SqlParameter param3 = new SqlParameter(PLM_VALOR_PARAM, objRow[SigPlanAccionModificacionData.PLM_VALOR_FIELD]);
                    SqlParameter param4 = new SqlParameter(PLM_JUSTIFICACION_PARAM, objRow[SigPlanAccionModificacionData.PLM_JUSTIFICACION_FIELD]);
                    SqlParameter param5 = new SqlParameter(PLM_NORMA_PARAM, objRow[SigPlanAccionModificacionData.PLM_NORMA_FIELD]);
                    SqlParameter param6 = new SqlParameter(PLM_FECHA_PARAM, objRow[SigPlanAccionModificacionData.PLM_FECHA_FIELD]);
                    SqlParameter param7 = new SqlParameter(PLM_OBSERVACION_PARAM, objRow[SigPlanAccionModificacionData.PLM_OBSERVACION_FIELD]);
                    SqlParameter param8 = new SqlParameter(PLM_USUARIO_PARAM, objRow[SigPlanAccionModificacionData.PLM_USUARIO_FIELD]);
                    SqlParameter[] parameters = { param0, param1, param2, param3, param4, param5, param6, param7, param8 };
                    if (objTransaction.Length == 0)
                    {
                        intReturn = SqlHelper.ExecuteNonQuery(CadenaConexion, CommandType.StoredProcedure,
                                                              "PAS_ACTUALIZAR_SIG_PLAN_ACCION_MODIFICACION", parameters);
                    }
                    else
                    {
                        intReturn = SqlHelper.ExecuteNonQuery(objTransaction[0], CommandType.StoredProcedure,
                                                              "PAS_ACTUALIZAR_SIG_PLAN_ACCION_MODIFICACION", parameters);
                    }
                }

            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "dbo.PAS_ADICIONAR_SIG_PLAN_ACCION_MODIFICACION"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "dbo.PAS_ADICIONAR_SIG_PLAN_ACCION_MODIFICACION"), ex);
            }

            return intReturn;
        }

        #endregion

        #region ActualizarRubrosModificadosContransacciones

        public decimal ActualizarRubrosModificadosContransacciones(SigPlanAccionModificacionData objDS, string strplnid)
        {

            decimal decIdentificador = 0;
            SqlConnection objConexion = new SqlConnection(CadenaConexion);
            objConexion.Open();
            SqlTransaction objTransaccion = objConexion.BeginTransaction();
            //SigPlanProgramaAdmPerfiles objSigPlanProgramaAdmPerfiles = new SigPlanProgramaAdmPerfiles(CadenaConexion);
            try
            {

               ActualizarRubroModificacion(objDS, objTransaccion);
               ActualizarValorRubro(Convert.ToDecimal(strplnid), objTransaccion);

                objTransaccion.Commit();
            }
            catch (Exception ex)
            {
                objTransaccion.Rollback();
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", GetType().FullName), ex);
            }
            finally
            {
                if (objConexion != null)
                {
                    objConexion.Close();
                }

                if (objTransaccion != null)
                {
                    objTransaccion.Dispose();
                }
                if (objConexion != null)
                {
                    objConexion.Dispose();
                }
            }

            #region 2. Registra Auditoria
            try
            {
                // OJO ANDRES
                //RegistrarAuditoria();
            }
            catch (Exception ex)
            {
                // OJO ANDRES
                //AbortTransaction();
                throw new ApplicationExceptionManager(ex.Message, ex);
            }
            #endregion

            return decIdentificador;

        }

        #endregion


        #region AdicionarRubrosModificadosContransacciones

        public decimal AdicionarRubrosModificadosContransacciones(SigPlanAccionModificacionData objDS,string strplnid)
        {

            decimal decIdentificador = 0;
            SqlConnection objConexion = new SqlConnection(CadenaConexion);
            objConexion.Open();
            SqlTransaction objTransaccion = objConexion.BeginTransaction();
            //SigPlanProgramaAdmPerfiles objSigPlanProgramaAdmPerfiles = new SigPlanProgramaAdmPerfiles(CadenaConexion);
            try
            {
                
                decIdentificador = AdicionarRubroModificacion(objDS, objTransaccion);
                if (decIdentificador == -1 || decIdentificador == 0)
                    return decIdentificador;
                ActualizarValorRubro(Convert.ToDecimal(strplnid), objTransaccion);

                objTransaccion.Commit();
            }
            catch (Exception ex)
            {
                objTransaccion.Rollback();
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", GetType().FullName), ex);
            }
            finally
            {
                if (objConexion != null)
                {
                    objConexion.Close();
                }

                if (objTransaccion != null)
                {
                    objTransaccion.Dispose();
                }
                if (objConexion != null)
                {
                    objConexion.Dispose();
                }
            }

            #region 2. Registra Auditoria
            try
            {
                // OJO ANDRES
                //RegistrarAuditoria();
            }
            catch (Exception ex)
            {
                // OJO ANDRES
                //AbortTransaction();
                throw new ApplicationExceptionManager(ex.Message, ex);
            }
            #endregion

            return decIdentificador;

        }

        #endregion


        #region ActualizarValorRubro

        public void ActualizarValorRubro(decimal decvalor, params SqlTransaction[] objTransaction)
        {
            try
            {
                SqlParameter param0 = new SqlParameter(PLN_ID_PARAM, decvalor);
                    
                SqlParameter[] parameters = {param0};
                if (objTransaction.Length == 0)
                {
                    SqlHelper.ExecuteNonQuery(CadenaConexion, CommandType.StoredProcedure,
                                              "PAS_ACTUALIZAR_PLM_VALOR_SIG_PLAN_ACCION", parameters);
                }
                else
                {
                    SqlHelper.ExecuteNonQuery(objTransaction[0], CommandType.StoredProcedure,
                                              "PAS_ACTUALIZAR_PLM_VALOR_SIG_PLAN_ACCION", parameters);
                }
            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "Usuarios"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "Usuarios"), ex);
            }
        }

        #endregion


        public int AdicionarRubro(SigPlanAccionData objDS, params SqlTransaction[] objTransaction)
        {
            DataTable objDT = objDS;
            int intReturn = 0;
            try
            {
                foreach (DataRow objRow in objDT.Rows)
                {

                    SqlParameter param0 = new SqlParameter(PLN_ID_PARAM, SqlDbType.Decimal);
                    SqlParameter param1 = new SqlParameter(PLN_NOMBRE_PARAM, objRow[SigPlanAccionData.PLN_NOMBRE_FIELD]);
                    SqlParameter param2 = new SqlParameter(PLN_CODIGO_BPIN_PARAM, objRow[SigPlanAccionData.PLN_CODIGO_BPIN_FIELD]);
                    SqlParameter param3 = new SqlParameter(PLN_CODIGO_PRESUPUESTAL_PARAM, objRow[SigPlanAccionData.PLN_CODIGO_PRESUPUESTAL_FIELD]);
                    SqlParameter param4 = new SqlParameter(PLN_VALOR_APROPIACION_PARAM, objRow[SigPlanAccionData.PLN_VALOR_APROPIACION_FIELD]);
                    SqlParameter param5 = new SqlParameter(PLN_OBJETIVO_PARAM, objRow[SigPlanAccionData.PLN_OBJETIVO_FIELD]);
                    SqlParameter param6 = new SqlParameter(PLN_DESCRIPCION_PARAM, objRow[SigPlanAccionData.PLN_DESCRIPCION_FIELD]);
                    SqlParameter param7 = new SqlParameter(PLN_PROBLEMA_PARAM, objRow[SigPlanAccionData.PLN_PROBLEMA_FIELD]);
                    SqlParameter param8 = new SqlParameter(DEP_ID_PARAM, objRow[SigPlanAccionData.DEP_ID_FIELD]);
                    SqlParameter param9 = new SqlParameter(CLS_ID_PARAM, objRow[SigPlanAccionData.CLS_ID_FIELD]);
                    SqlParameter param10 = new SqlParameter(PLN_ANO_PARAM, objRow[SigPlanAccionData.PLN_ANO_FIELD]);
                    SqlParameter param11 = new SqlParameter(PND_ID_PARAM, objRow[SigPlanAccionData.PND_ID_FIELD]);
                    param0.Direction = ParameterDirection.Output;
                    SqlParameter[] parameters = {param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, 
                                                         param10, param11};
                    if (objTransaction.Length == 0)
                    {
                        intReturn = SqlHelper.ExecuteNonQuery(CadenaConexion, CommandType.StoredProcedure,
                                                              "PAS_ADICIONAR_SIG_PLAN_ACCION", parameters);
                    }
                    else
                    {
                        intReturn = SqlHelper.ExecuteNonQuery(objTransaction[0], CommandType.StoredProcedure,
                                                              "PAS_ADICIONAR_SIG_PLAN_ACCION", parameters);
                    }


                }

            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "Usuarios"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "Usuarios"), ex);
            }

            return intReturn;
        }
        public SigPlanAccionData ConsultarPlanAccionAnoDepIdEntidades(Decimal decPnlAno, String strDepId)
        {
            SqlParameter param1 = decPnlAno == 0 ? new SqlParameter(PLN_ANO_PARAM, DBNull.Value) : new SqlParameter(PLN_ANO_PARAM, decPnlAno);
            SqlParameter param2 = new SqlParameter(DEP_ID_PARAM, strDepId);
            SqlParameter[] parameters = { param1, param2 };
            SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();
            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_CONSULTAR_BAS_DEPENDENCIAS_ENTIDAD", objSigPlanAccionData, parameters);
            return objSigPlanAccionData;
        }

        public SigPlanAccionData ConsultarPlanAccionAnoDepIdDependencias(Decimal decPnlAno, String strDepId)
        {
            SqlParameter param1 = decPnlAno == 0 ? new SqlParameter(PLN_ANO_PARAM, DBNull.Value) : new SqlParameter(PLN_ANO_PARAM, decPnlAno);
            SqlParameter param2 = new SqlParameter(DEP_ID_PARAM, strDepId);
            SqlParameter[] parameters = { param1, param2 };
            SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();
            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_CONSULTAR_BAS_GRUPOS_DEPENDENCIAS", objSigPlanAccionData, parameters);
            return objSigPlanAccionData;
        }

        public SigPlanAccionData ConsultarPlanAccionPer_Id(String strPerId)
        {
            //SqlParameter param1 = strPerId == 0 ? new SqlParameter(PLN_ANO_PARAM, DBNull.Value) : new SqlParameter(PLN_ANO_PARAM, decPnlAno);
            SqlParameter param1 = new SqlParameter(PER_ID_PARAM, strPerId);
            SqlParameter[] parameters = { param1};
            SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();
            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_CONSULTAR_PLAN_ACCION_PER_ID", objSigPlanAccionData, parameters);
            return objSigPlanAccionData;
        }

        public SigPlanAccionData ConsultarPlanAccionAnoDepIdGrupos(Decimal decPnlAno, String strDepId)
        {
            SqlParameter param1 = new SqlParameter(PLN_ANO_PARAM, decPnlAno);
            SqlParameter param2 = new SqlParameter(DEP_ID_PARAM, strDepId);
            SqlParameter[] parameters = { param1, param2 };
            SigPlanAccionData objSigPlanAccionData = new SigPlanAccionData();
            Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteDataTable(CadenaConexion, CommandType.StoredProcedure, "PAS_CONSULTAR_BAS_GRUPOS", objSigPlanAccionData, parameters);
            return objSigPlanAccionData;
        }

        public int EliminarRubrosContransacciones(params string[] strIDs)
        {

            int salida = 0;
            SqlConnection objConexion = new SqlConnection(CadenaConexion);
            objConexion.Open();
            SqlTransaction objTransaccion = objConexion.BeginTransaction();
            //SigPlanProgramaAdmPerfiles objSigPlanProgramaAdmPerfiles = new SigPlanProgramaAdmPerfiles(CadenaConexion);
            try
            {
                if (strIDs.Length > 0)
                {
                    foreach (string strID in strIDs)
                    {
                        if (!string.IsNullOrEmpty(strID))
                        {
                            //objSigPlanProgramaAdmPerfiles.EliminarSigPlanProgramaAdmPerfiles(Convert.ToInt32(strID), objTransaccion);
                            EliminarRubroModificaciones(strID, objTransaccion);
                            salida = 1;

                        }
                    }
                }
                objTransaccion.Commit();
            }
            catch (Exception ex)
            {
                objTransaccion.Rollback();
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", GetType().FullName), ex);
            }
            finally
            {
                if (objConexion != null)
                {
                    objConexion.Close();
                }

                if (objTransaccion != null)
                {
                    objTransaccion.Dispose();
                }
                if (objConexion != null)
                {
                    objConexion.Dispose();
                }
            }

            #region 2. Registra Auditoria
            try
            {
                // OJO ANDRES
                //RegistrarAuditoria();
            }
            catch (Exception ex)
            {
                // OJO ANDRES
                //AbortTransaction();
                throw new ApplicationExceptionManager(ex.Message, ex);
            }
            #endregion

            return salida;

        }

        public int EliminarRubroModificaciones(string strID, params SqlTransaction[] objTransaction)
        {
            int resultado;
            SqlParameter param1 = new SqlParameter(PLM_ID_PARAM, strID);
            SqlParameter[] parameters = new SqlParameter[] { param1 };
            if (objTransaction.Length == 0)
            {
                resultado = Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(CadenaConexion, CommandType.StoredProcedure,
                                                      "PAS_ELIMINAR_SIG_PLAN_ACCION_MODIFICACION_PLM_ID", parameters);
            }
            else
            {
                resultado = Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(objTransaction[0], CommandType.StoredProcedure,
                                                        "PAS_ELIMINAR_SIG_PLAN_ACCION_MODIFICACION_PLM_ID", parameters);
            }
            return resultado;
        }

        public int EliminarRubroModificacionesPlnId(string strID, params SqlTransaction[] objTransaction)
        {
            int resultado;
            SqlParameter param1 = new SqlParameter(PLN_ID_PARAM, strID);
            SqlParameter[] parameters = new SqlParameter[] { param1 };
            if (objTransaction.Length == 0)
            {
                resultado = Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(CadenaConexion, CommandType.StoredProcedure,
                                                      "PAS_ELIMINAR_SIG_PLAN_ACCION_MODIFICACION_PLN_ID", parameters);
            }
            else
            {
                resultado = Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(objTransaction[0], CommandType.StoredProcedure,
                                                        "PAS_ELIMINAR_SIG_PLAN_ACCION_MODIFICACION_PLN_ID", parameters);
            }
            return resultado;
        }
    }
}
